﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RoleHelper
{
   class Aventura 
    {
        private List<Situacion> Situaciones;
        private List<Personaje> Personajes;
        private string Nombre;
        private string Descripcion;
        public Aventura() 
        {
            Situaciones = new List<Situacion>();
            Personajes = new List<Personaje>();

        }
        ~Aventura()
        {
            Situaciones.Clear();
            Personajes.Clear();
        }
        public void setNombre(string nombre)
        {
            Nombre=nombre;
        }
        public string getNombre()
        {
            return Nombre;
        }
        public void setDesc(string descripcion)
        {
            Descripcion = descripcion;
        }
        public string getDesc()
        {
            return Descripcion;
        }
        public void addSituacion(Situacion sit)
        {
            Situaciones.Add(sit);
        }
        public void addSituacion(List<Situacion> sits)
        {
            Situaciones.AddRange(sits);
        }
        public Situacion getSituacion(int i)
        {
            return Situaciones[i];
        }
        public Situacion getSituacion(string nombre)
        {
            for (int i = 0; i < Situaciones.Count; i++)
            {
                if (Situaciones[i].getNombre() == nombre)
                    return Situaciones[i];
            }
            Situacion vacio = new Situacion();
            return vacio;
        }
        public List<Situacion> getSituacion()
        {
            return Situaciones;
        }
        public void delSituacion(int id)
        {
            Situaciones.RemoveAt(id);
        }
        public void addPersonaje(Personaje per)
        {
            per.setID(this.Personajes.Count + 1);
            Personajes.Add(per);
        }
        public void addPersonaje(List<Personaje> pers)
        {
            Personajes.AddRange(pers);
        }
        public Personaje getPersonaje(int i)
        {
            return Personajes[i];
        }
        public Personaje getIDPersonaje(int id)
        {
            for (int i = 0; i < Personajes.Count; i++)
            {
                if (Personajes[i].getID() == id)
                    return Personajes[i];
            }
            Personaje vacio = new Personaje();
            return vacio;
        }


        public List<Personaje> getPersonaje()
        {
            return Personajes;
        }
        public void unload()
        {
            for (int i = 0; i < this.Situaciones.Count; i++)
            {
                this.Situaciones[i].deleteNPC();
            }
            this.Situaciones.Clear();
            this.Personajes.Clear();
            this.Nombre = "";
            this.Descripcion = "";
            hayaventura.haventura = false;
            
        }
    }
}
